1. The Field of the Invention
This invention relates generally to the field of wireless communications. In particular, embodiments of the present invention relate to a method of automatically creating a modem interface for use with a wireless device, such as a Bluetooth device.
2. The Relevant Technology
Short range wireless communication schemes are increasingly used as an alternative to wire-based networks to interconnect computers and computer devices. The use of wireless communications provides a number of advantages, including the elimination of complex, expensive, and inconvenient wire-based connection schemes. Moreover, a wireless computing device is not hindered by wired connections and is free to move around an office or building without losing the corresponding wireless connection.
While a number of wireless communications standards have been developed for such applications, one popular example is known as “Bluetooth.” The Bluetooth standard uses low power radio frequencies to allow communication between various devices such as mobile phones, laptop and desktop computers, printers, modems, PDAs, etc. This technology was originally envisioned for the purpose of replacing cabling and other hard-wired connection schemes used to connect auxiliary devices to a desktop or laptop computer. However, Bluetooth has further evolved into a method of sending both data and voice signals between a wide range of devices. For example, a Bluetooth-enabled PDA could be configured to automatically connect to a Bluetooth-enabled communications line within a building, therefore gaining wireless access to computing resources, such as printers, modems, facsimile machines, an Internet portal, and the like.
In an effort to ensure compatibility among Bluetooth implementations, a Bluetooth special interest group (SIG) was formed. One of the main objectives of the Bluetooth SIG is to formulate a standardized specification for every element of Bluetooth. The specification dictates numerous software and hardware characteristics so that devices made by different manufacturers will be compatible with one another. The specification dictates all aspects of Bluetooth technology from the software stack necessary to run Bluetooth devices to the actual hardware requirements.
As per this standard, Bluetooth compatible technology is composed of multiple components that together provide for wireless communication capabilities. For example, each Bluetooth-compatible device is configured with a radio that can transmit and receive wireless signals on a particular frequency band. In addition, there are certain structural elements required for connecting the radio to the specific host device. Further, each Bluetooth-compatible device is also configured with particular software to allow the device to properly process and route data or voice signals. This software is typically referred to as the “protocol stack” because it is composed of numerous components that are each configured to perform a particular function. Information is generally passed between the respective layers of the stack either from the bottom of the stack to the top or vice versa. The protocol stack is further broken up into a “transport protocol group,” a “middleware protocol group” and an “application protocol group.
In general, the transport protocol group is designed to allow Bluetooth devices to locate one another within a Bluetooth network, and to manage the links that allow higher layer protocols and applications to pass data through the transport protocols. The transport protocol group is comprised of a radio, a baseband controller, a link manager, a logical link control and adaptation protocol (L2CAP), and a host controller interface (HCI). The baseband controller defines how devices search for one another and how they connect to one another. The baseband controller also defines the master and slave roles between devices. The link manager supervises the creation of pairing between devices and the encryption of data. The link manager also supervises power control among devices. For example, the link manager can initiate a low power adjustment between devices to conserve energy. The L2CAP supports the protocol multiplexing that allows multiple protocols to utilize the same air-interface. It also maintains the desired level of service among devices. The HCI allows higher layers of the stack to access the baseband controller and link manager. The HCI is not a required part of the Bluetooth specification and it can be located above or below the L2CAP depending on the configuration of the particular Bluetooth system.
The radio, link manager and baseband controller are sometimes grouped together to form what is referred to as a Bluetooth module. The remaining components of the transport layer are typically located on the actual Bluetooth host device.
The middleware protocol group is directed to functionality that facilitates communication between host applications and the Bluetooth module. The protocols can include both third-party protocols and industry standard protocols specified by the Bluetooth SIG. The middleware protocol group specifically includes a RFCOMM, a service discovery protocol (SDP), a set of IrDa interoperability protocols, and a telephony control protocol (TCS). The RFCOMM protocol creates virtual serial ports to facilitate the replacement of cables with a wireless Bluetooth interface. The SDP protocol defines a standard method for Bluetooth devices to discover and learn about the services offered by other Bluetooth devices within the network. The set of IrDa interoperability protocols helps to define the syntax of the data to be exchanged between devices. The TCS protocol is designed to control the exchange of voice communications between devices.
The application protocol group consists of the various applications that utilize Bluetooth communications. The applications may be unaware that data is being transmitted over a Bluetooth air-interface rather than a standard cable, or the application may be specifically designed to interact with Bluetooth devices.
Bluetooth devices form what are known as “piconets” with one another. A piconet is comprised of one Bluetooth device acting as a master and numerous other devices acting as slaves. Both the master and the slave devices can transmit and receive data from one another. However, the master device defines the data hopping sequence and is usually the device that initiates the communication. Initiation of a communication depends, in part, on the configuration state of a device. For example, an “active state” is a system configuration in which the slave device is always listening for transmissions from the master. In a “parked state” the slave device is only periodically listening to the master. Thus, a parked slave must become active before it can communicate normally with the master. In addition, there is a sniff state and a hold state, both of which are considered active states. The sniff and hold states are used as alternatives to the full active state for the purpose of conserving power. A slave device in a sniff mode essentially communicates with the master at regular intervals rather than always listening. A slave device in a hold mode essentially stops listening to the master for a specified period of time.
There are several limitations present in the Bluetooth standard that can degrade the overall operating efficiency of a Bluetooth network. A primary limitation relates to the number of active slave devices that can be connected within a single piconet. Up to seven active slave devices and up to 255 parked slave devices can be linked to a master device in a single piconet at a given time. The seven device limitation prevents the master from actively communicating with more than seven slave devices at any given time. Obviously, the seven device limitation can limit the functionality that is available to a master device at any given time, which may in turn limit the operating efficiency of the Bluetooth network.
For example, if an application needs to establish a communication link with the Internet, it may request a Bluetooth-connection with a Bluetooth enabled modem. However, if the modem is attached to one of the parked Bluetooth slave devices (i.e., not available as one of the seven active devices), it may take a relatively long amount of time before the parked device becomes active and actually processes the request from the application. This time delay is obviously undesirable.
In addition, one Bluetooth device may be part of multiple piconets. For example, the master of one piconet may also be a slave in another piconet. In this scenario, a slave device from one piconet could order a “print” command. That print command could be routed through the master to a slave which happens to be a master of another piconet that contains a printer. That second master will then send the signal to the printer. However, this type of situation could limit the bandwidth of the second master as it is routing the print command (and associated print data) to the printer, thereby limiting its ability to respond to other requests within its piconet. Again, this problem is in large part a result of the seven device limitation.
There are a number of methodologies used to operably interface a Bluetooth module with a computing device. One method utilizes a pre-defined modem interface that logically resides between the Bluetooth module and the computer operating system. Using this approach, the Bluetooth module is connected to a particular port on the computer device. Through a fairly complex and extensive installation process, the operating system is configured in a manner such that the Bluetooth module appears as a modem that is accessible via the predefined modem interface. This method is preferable in some circumstances because it allows existing operating systems and legacy software products that are already configured to interface with modems to utilize the Bluetooth module. Thus, the approach allows Bluetooth devices to be used with existing software without requiring the user to perform extensive software upgrading; the computer device merely communicates with the Bluetooth module in the same manner as a standard modem.
With this approach, the Bluetooth protocol decodes the modem commands into Bluetooth commands. For example, the Bluetooth protocol stack is configured to receive AT commands that are intended for a modem. The RFCOMM module in the middleware protocol group emulates the virtual serial port and is capable of receiving modem commands. However, one drawback with this approach is the somewhat complex and cumbersome modem installation process that must first be performed to create the modem interface for use with the Bluetooth module. For example, this process typically requires a user to enter detailed technical information about the port location, the modem type, and other related information. Most computer users do not possess the necessary level of skills provide this type of information, and therefore it is subject to errors. Thus, it would be preferable to automate the overall process.
Therefore, there is a need for a method of automatically creating a modem interface on a computer device for use with a wireless module, such as a Bluetooth module. The method should require little or no input from the user and should be user friendly.